/******************************************************************************
**                                                                           **
**                 Proprietary and Confidential Information                  **
**                                                                           **
**                 Copyright (c) Conexant, Inc. Unpublished                  **
**                                                                           **
** This source code and the algorithms implemented therein constitute        **
** confidential information and may compromise trade secrets of Conexant Systems,    **
** Inc. or its associates, and any unauthorized use thereof is prohibited.   **
**                                                                           **
******************************************************************************/
#ifndef __DC_PRINTER_MEDIA_API_H__ 
#define __DC_PRINTER_MEDIA_API_H__

#ifdef __cplusplus
extern "C" {
#endif

/**************************************************************************//**
*  @file dc_printer_media_api.h
*  @brief This file contains the definition of the Conexant Printer 
*  API (media)
******************************************************************************/
/******************************************************************************
*  FILE FORMAT: <PUBLIC>
*      1. INCLUDES 
*      2. ENUMERATIONS 
*      3. DEFINES
*      4. STRUCTURES
*      5. GLOBALS
*      6. PUBLIC FUNCTION PROTOTYPES
******************************************************************************/
/******************************************************************************
*  1. INCLUDES
******************************************************************************/
/******************************************************************************
*  2. ENUMERATIONS
******************************************************************************/
typedef enum 
{
    PR_MEDIA_asme_f_28x40in,
    PR_MEDIA_iso_2a0_1189x1682mm,
    PR_MEDIA_iso_a0_841x1189mm,
    PR_MEDIA_iso_a0x3_1189x2523mm,
    PR_MEDIA_iso_a1_594x841mm,
    PR_MEDIA_iso_a10_26x37mm,
    PR_MEDIA_iso_a1x3_841x1783mm,
    PR_MEDIA_iso_a1x4_841x2378mm,
    PR_MEDIA_iso_a2_420x594mm,
    PR_MEDIA_iso_a2x3_594x1261mm,
    PR_MEDIA_iso_a2x4_594x1682mm,
    PR_MEDIA_iso_a2x5_594x2102mm,
    PR_MEDIA_iso_a3_297x420mm,
    PR_MEDIA_iso_a3extra_322x445mm,
    PR_MEDIA_iso_a3x3_420x891mm,
    PR_MEDIA_iso_a3x4_420x1189mm,
    PR_MEDIA_iso_a3x5_420x1486mm,
    PR_MEDIA_iso_a3x6_420x1783mm,
    PR_MEDIA_iso_a3x7_420x2080mm,
    PR_MEDIA_iso_a4_210x297mm,
    PR_MEDIA_iso_a4extra_235p5x322p3mm,
    PR_MEDIA_iso_a4tab_225x297mm,
    PR_MEDIA_iso_a4x3_297x630mm,
    PR_MEDIA_iso_a4x4_297x841mm,
    PR_MEDIA_iso_a4x5_297x1051mm,
    PR_MEDIA_iso_a4x6_297x1261mm,
    PR_MEDIA_iso_a4x7_297x1471mm,
    PR_MEDIA_iso_a4x8_297x1682mm,
    PR_MEDIA_iso_a4x9_297x1892mm,
    PR_MEDIA_iso_a5_148x210mm,
    PR_MEDIA_iso_a5extra_174x235mm,
    PR_MEDIA_iso_a6_105x148mm,
    PR_MEDIA_iso_a7_74x105mm,
    PR_MEDIA_iso_a8_52x74mm,
    PR_MEDIA_iso_a9_37x52mm,
    PR_MEDIA_iso_b0_1000x1414mm,
    PR_MEDIA_iso_b1_707x1000mm,
    PR_MEDIA_iso_b10_31x44mm,
    PR_MEDIA_iso_b2_500x707mm,
    PR_MEDIA_iso_b3_353x500mm,
    PR_MEDIA_iso_b4_250x353mm,
    PR_MEDIA_iso_b5_176x250mm,
    PR_MEDIA_iso_b5extra_201x276mm,
    PR_MEDIA_iso_b6_125x176mm,
    PR_MEDIA_iso_b6c4_125x324mm,
    PR_MEDIA_iso_b7_88x125mm,
    PR_MEDIA_iso_b8_62x88mm,
    PR_MEDIA_iso_b9_44x62mm,
    PR_MEDIA_iso_c0_917x1297mm,
    PR_MEDIA_iso_c1_648x917mm,
    PR_MEDIA_iso_c10_28x40mm,
    PR_MEDIA_iso_c2_458x648mm,
    PR_MEDIA_iso_c3_324x458mm,
    PR_MEDIA_iso_c4_229x324mm,
    PR_MEDIA_iso_c5_162x229mm,
    PR_MEDIA_iso_c6_114x162mm,
    PR_MEDIA_iso_c6c5_114x229mm,
    PR_MEDIA_iso_c7_81x114mm,
    PR_MEDIA_iso_c7c6_81x162mm,
    PR_MEDIA_iso_c8_57x81mm,
    PR_MEDIA_iso_c9_40x57mm,
    PR_MEDIA_iso_dl_110x220mm,
    PR_MEDIA_iso_ra0_860x1220mm,
    PR_MEDIA_iso_ra1_610x860mm,
    PR_MEDIA_iso_ra2_430x610mm,
    PR_MEDIA_iso_sra0_900x1280mm,
    PR_MEDIA_iso_sra1_640x900mm,
    PR_MEDIA_iso_sra2_450x640mm,
    PR_MEDIA_jis_b0_1030x1456mm,
    PR_MEDIA_jis_b1_728x1030mm,
    PR_MEDIA_jis_b10_32x45mm,
    PR_MEDIA_jis_b2_515x728mm,
    PR_MEDIA_jis_b3_364x515mm,
    PR_MEDIA_jis_b4_257x364mm,
    PR_MEDIA_jis_b5_182x257mm,
    PR_MEDIA_jis_b6_128x182mm,
    PR_MEDIA_jis_b7_91x128mm,
    PR_MEDIA_jis_b8_64x91mm,
    PR_MEDIA_jis_b9_45x64mm,
    PR_MEDIA_jis_exec_216x330mm,
    PR_MEDIA_jpn_chou2_111p1x146mm,
    PR_MEDIA_jpn_chou3_120x235mm,
    PR_MEDIA_jpn_chou4_90x205mm,
    PR_MEDIA_jpn_hagaki_100x148mm,
    PR_MEDIA_jpn_kahu_240x322p1mm,
    PR_MEDIA_jpn_kaku2_240x332mm,
    PR_MEDIA_jpn_oufuku_148x200mm,
    PR_MEDIA_jpn_you4_105x235mm,
    PR_MEDIA_na_10x11_10x11in,
    PR_MEDIA_na_10x13_10x13in,
    PR_MEDIA_na_10x14_10x14in,
    PR_MEDIA_na_10x15_10x15in,
    PR_MEDIA_na_11x12_11x12in,
    PR_MEDIA_na_11x15_11x15in,
    PR_MEDIA_na_12x19_12x19in,
    PR_MEDIA_na_5x7_5x7in,
    PR_MEDIA_na_6x9_6x9in,
    PR_MEDIA_na_7x9_7x9in,
    PR_MEDIA_na_9x11_9x11in,
    PR_MEDIA_na_a2_4p375x5p75in,
    PR_MEDIA_na_archa_9x12in,
    PR_MEDIA_na_archb_12x18in,
    PR_MEDIA_na_archc_18x24in,
    PR_MEDIA_na_archd_24x36in,
    PR_MEDIA_na_arche_36x48in,
    PR_MEDIA_na_bplus_12x19p17in,
    PR_MEDIA_na_c_17x22in,
    PR_MEDIA_na_c5_6p5x9p5in,
    PR_MEDIA_na_d_22x34in,
    PR_MEDIA_na_e_34x44in,
    PR_MEDIA_na_edp_11x14in,
    PR_MEDIA_na_euredp_12x14in,
    PR_MEDIA_na_executive_7p25x10p5in,
    PR_MEDIA_na_f_44x68in,
    PR_MEDIA_na_fanfoldeur_8p5x12in,
    PR_MEDIA_na_fanfoldus_11x14p875in,
    PR_MEDIA_na_foolscap_8p5x13in,
    PR_MEDIA_na_govtlegal_8x13in,
    PR_MEDIA_na_govtletter_8x10in,
    PR_MEDIA_na_index3x5_3x5in,
    PR_MEDIA_na_index4x6_4x6in,
    PR_MEDIA_na_index4x6ext_6x8in,
    PR_MEDIA_na_index5x8_5x8in,
    PR_MEDIA_na_invoice_5p5x8p5in,
    PR_MEDIA_na_ledger_11x17in,
    PR_MEDIA_na_legal_8p5x14in,
    PR_MEDIA_na_legalextra_9p5x15in,
    PR_MEDIA_na_letter_8p5x11in,
    PR_MEDIA_na_letterextra_9p5x12in,
    PR_MEDIA_na_letterplus_8p5x12p69in,
    PR_MEDIA_na_monarch_3p875x7p5in,
    PR_MEDIA_na_number10_4p125x9p5in,
    PR_MEDIA_na_number11_4p5x10p375in,
    PR_MEDIA_na_number12_4p75x11in,
    PR_MEDIA_na_number14_5x11p5in,
    PR_MEDIA_na_number9_3p875x8p875in,
    PR_MEDIA_na_personal_3p625x6p5in,
    PR_MEDIA_na_quarto_8p5x10p83in,
    PR_MEDIA_na_supera_8p94x14in,
    PR_MEDIA_na_superb_13x19in,
    PR_MEDIA_na_wideformat_30x42in,
    PR_MEDIA_na_3p5x5_3p5x5in,
    PR_MEDIA_na_4x8_4x8in,
    PR_MEDIA_na_4x12_4x12in,
    PR_MEDIA_na_3p5x5p25_3p5x5p25in,
    PR_MEDIA_na_3p5x7p25_3p5x7p25in,
    PR_MEDIA_na_4x5p5_4x5p5in,
    PR_MEDIA_om_daipakai_275x395mm,
    PR_MEDIA_om_folio_210x330mm,
    PR_MEDIA_om_foliosp_215x315mm,
    PR_MEDIA_om_invite_220x220mm,
    PR_MEDIA_om_italian_110x230mm,
    PR_MEDIA_om_juurokukai_198x275mm,
    PR_MEDIA_om_largephoto_200x300mm,
    PR_MEDIA_om_pakai_267x389mm,
    PR_MEDIA_om_postfix_114x229mm,
    PR_MEDIA_om_smallphoto_100x150mm,
    PR_MEDIA_prc_1_102x165mm,
    PR_MEDIA_prc_10_324x458mm,
    PR_MEDIA_prc_16k_146x215mm,
    PR_MEDIA_prc_2_102x176mm,
    PR_MEDIA_prc_3_125x176mm,
    PR_MEDIA_prc_32k_97x151mm,
    PR_MEDIA_prc_4_110x208mm,
    PR_MEDIA_prc_5_110x220mm,
    PR_MEDIA_prc_6_120x320mm,
    PR_MEDIA_prc_7_160x230mm,
    PR_MEDIA_prc_8_120x309mm,
    PR_MEDIA_pwg_letterora4_choice,
    PR_MEDIA_roc_16k_7p75x10p75in,
    PR_MEDIA_roc_8k_10p75x15p5in,
    PR_MEDIA_na_4x7_4x7in,
    PR_MEDIA_CUSTOM,
    PR_MEDIA_AUTO,
    PR_MEDIA_UNKNOWN,
    
    /* Insert media size types above this entry. */
    PR_MEDIA_LAST
} PR_MEDIA_SIZE;

typedef enum 
{
    /** Normal paper margins. */
    PR_MARGIN_NORMAL,

    /** Minimum border paper margins. */
    PR_MARGIN_MINIMUM,

    /** Borderless paper margins. */
    PR_MARGIN_BORDERLESS,

    /** Extended borderless paper margins. */
    PR_MARGIN_BORDERLESS_EXTENDED,

    /* Insert margin modes above this entry. */
    PR_MARGIN_LAST
} PR_MARGIN_MODE;

/* String representation. */
# define PR_MARGIN_MODE_STRING "normal", "minimum" , "borderless", "borderless_ext"
# define PR_MARGIN_MODE_ALT_STRING "normal,minimum,borderless,borderless_ext"

typedef UINT32 PR_MEDIA_TYPE;

typedef enum{
    PR_MEDIA_TYPE_AUTO_UNKNOWN,
    PR_MEDIA_PLAIN,
    PR_MEDIA_TRANSPARENCY,
    PR_MEDIA_GLOSSY,
    PR_MEDIA_LAST_STANDARD,
}PR_MEDIA_TYPE_STANDARD;

/******************************************************************************
*  3. DEFINES
******************************************************************************/
/******************************************************************************
*  4. STRUCTURES
******************************************************************************/
typedef struct 
{
    /** Paper size. */
    PR_MEDIA_SIZE paperSize;

    /** Physical width of paper in 1000ths of an inch. */
    UINT32 width;

    /** Physical height of paper in 1000ths of an inch. */
    UINT32 height;

    /**
    ** String identifier for the paper size. The name should be of the 
    ** format similar to the enumeration as defined above 
    ** (PR_MEDIA_SIZE -- PR_MEDIA_x_y_z).  For the name the format 
    ** would be only be x_y_z where 'x' is the Area or Region, 'y' is 
    ** the media name, and 'z' is the dimensions.  The exception are 
    ** the "special" paper sizes (e.g. PR_MEDIA_CUSTOM). In these 
    ** cases, the string should be the enumeration name minus 
    ** "PR_MEDIA_".
    **   
    ** By following this standard, string-based host parsing firmware 
    ** can use this member to determine the paper size sent from the 
    ** host.
    */
    char *name;
} PR_MEDIA_DIMENSIONS;
/******************************************************************************
*  5. GLOBALS
******************************************************************************/
/******************************************************************************
*  6. PUBLIC FUNCTION PROTOTYPES
******************************************************************************/

#ifdef __cplusplus
}
#endif

#endif /* __DC_PRINTER_MEDIA_API_H__ */
